<?php
/*
 * Copyright (c) 2011 Joao Paulo Cirino Silva de Novais <joaopaulonovais@gmail.com>
 *
 */

class TipoPerfilControl extends Control {

    /*
     * Esse metodo e o responsavel por orquestrar as acoeses das classes de visao
     * e dados.
     */
    static function executar() {

        $acao = isset($_REQUEST["acao"]) ? $_REQUEST["acao"] : "";

        $visao        = new TipoPerfilView();
        $tipo_perfil = new TipoPerfilModel();

        self::load($tipo_perfil, $_REQUEST);

        switch ($acao) {

            case "Gravar":
                if ($tipo_perfil->get("cod_tipo_perfil")) {
                    TipoPerfilDAO::alterar($tipo_perfil);
                    $mensagem = "Tipo de perfil alterado com sucesso.";
                } else {
                    TipoPerfilDAO::inserir($tipo_perfil);
                    $mensagem = "Tipo de perfil cadastrado com sucesso.";
                }

                $visao->setMensagem($mensagem);
                //$visao->editar(new TipoPerfilModel());
                $tipos_perfil = TipoPerfilDAO::consultar(new TipoPerfilModel());
                $visao->consultar($tipos_perfil);
                break;

            case "Remover":

                if ($tipo_perfil->get("cod_tipo_perfil")) {

                    TipoPerfilDAO::remover($tipo_perfil);
                }

                $tipos_perfil = TipoPerfilDAO::consultar(new TipoPerfilModel());
                $visao->consultar($tipos_perfil);

                break;

            case "Consultar":

                try {

                    $tipos_perfil = TipoPerfilDAO::consultar($tipo_perfil);

                    if ($tipos_perfil) {
                        $visao->consultar($tipos_perfil);
                    } else {
                        $visao->consultar(new TipoPerfilModel());
                    }

                } catch (PDOException $e) {

                    echo $e->getMessage();
                }

                break;

            default: // $acao == "Editar"

                if ($tipo_perfil->get("cod_tipo_perfil")) {
                    try {

                        $tipos_perfil = TipoPerfilDAO::consultar($tipo_perfil);
                        
                        if ($tipos_perfil) {

                            $tipo_perfil = $tipos_perfil[0];
                        }
                    } catch (PDOException $e) {

                        echo $e->getMessage();
                    }
                } else {

                    $tipo_perfil = new TipoPerfilModel();
                }

                $visao->editar($tipo_perfil);
        }
    }
}

?>